redis rejson 命令行客户端使用和java客户端使用

您所在的位置:网站首页 python arrpop redis rejson 命令行客户端使用和java客户端使用

redis rejson 命令行客户端使用和java客户端使用

2024-01-28 17:43| 来源: 网络整理| 查看: 265

下载rejson插件 地址Releases · RedisJSON/RedisJSON (github.com)

1.04版本下面有直接编译号的,别的版本需要手动编译,第一次发布时间在2017年11月,也就是redis 4 发布以后,所以只有redis 4 以后才能支持 rejson

image-20230322141606678

下载以后吧文件放到 redis-6.0.9/module 目录下面

module 需要自己创建,放在别的地方也可以 需要修改权限: chmod 777 rejson.so

加载配置文件

方法1:vi redis.conf ,然后添加 loadmodule rejson.so文件路径 image-20230322141926034 方法2在启动命令行loadmodule:redis-server --loadmodule /path/to/module/rejson.so (据说这种方法比较危险,具体哪里危险没去研究)

重启redis,然后使用 module list 查看是否已经加载 rejson

rejson源码编译

下载源码包,然后解压 源码包根目录执行:cargo build --release 目标文件在target/release/target/release 但是运行报错了,error: failed to run custom build command for redis-module v0.25.0,用window编译也是一样的错,不知道哪里的问题。 还是去redis 的官网下载编译好的包,下载地址:Download Redis Enterprise | Redis image-20230323113739468

添加一个json

格式:json.set keyName . 'json字符串' 例子:json.set user1 . '{"name":"张三","age":2}' 备注 点空格 后面表示整个对象替换,点字段名后面表示修改指定字段,设置的时候 . 不能省略,查询的整个的时候可以省略

查询json

格式:json.get keyName . 例子:json.get user1 后面的 . 可加可不加,都表示获取整个对象

查询接送对象的部分字段

格式:json.get keyName .字段名字 例子:json.get user1 .age

rejson支持两类语法,ReJSON和 2.0引入的 jsonpath 语法

rejson 语法

json.set user1 . '{"name":"zhangsan","age":30}' #添加一个对象

json.numincrby user1 .age 2 #user1.age 加2

json.nummultby user1 .age 2 #user1.age 乘2

JSON.set user1 .age 200 #user1.age 设置为200

json.set user1 .state '1' #user1.添加一个新的字段 值是 1

json.set user1 .array '[1,2,3]' #user1 添加一个字段array, 并且它是一个数组

json.arrappend user1 .array 5 6 7 #user1字段为array的数组上面添加三个子元素

json.arrpop user1 .array #user1字段为array的数组上弹出一个原生,最右边弹出

json.type user1 .array #查询 user 里面 array字段的类型

json.set arr1 . {} NX #NX 表示存在就不更新,默认是XX直接覆盖

json.objlen user1 #查询对象key的个数

json.objkeys user1 #查询对象的keys

json.arrlen user1 .array #查看数组的长度

json.arrinsert user1 .array 2 '"abc"' #在user1 的 array的数组下标2位置添加一个abd

json.arrindex user1 .array '"abc"' #在 user1 的array 数组中查询 abc 的位置

json.arrappend user1 .array 312 #在数组末尾追

json.strlen user1 .name #获取字符串长度 (取到ascii的长度,一个中文长度是3)

json.del user1 .age #删除 age 属性

jsonPath语法 需要 2.0 以后的版本才支持( 2021-11-17 日发布),上面装的1.0.4不支持 image-20230322165422868

JsonPath 常见用法

json.set user1 $ '{"name":"zhangsan","age":30}' #添加一个对象 json.get user1 $.name #查询user1.name,但是拿到的值外面有个中括号 json.set user1 $.name '"李四"' #设置user1.name为李四 json.del user1 $.name #删除user1.name字段 json.set user1 $.ids [1,2,3] #user1 里面添加一个名字为 ids的数组 json.arrinsert user1 $.ids 2 '"a"' #user1.ids 数组下标2的位置添加 一个 a json.arrpop user1 $.ids #弹出最右边一个元素 json.get user1 $.ids[1] #查看数组的指定下标的元素

jsonpath语法表

表达式 说明 例子 $ 文档根元素 $..book[?(@.isbn)] book数组下面存在is.bin字段的元素 @ 当前元素 $..book[(@.length-1)] 数组的倒数第一个元素 . 匹配下级元素 $.book 根目录下面的 book 字段的字段 [] 匹配下级元素 $.book[0] 数组的第个小标的元素 .. 递归匹配所有子元素 $..author 返回任务层级子孙节点中的author字段 * 匹配下级元素 $.store.book[*].author boor数据下面的author字段 [,] 连接操作符 [start:end] 数据切片操作 $.store.book[1:4] book数组下标 1-4的元素 [:len] 数据切片操作 $.store.book[:4] book数组的前4个内容 ?() 条件过滤表达式 $..book[?(@.price


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3